import { CozeAPI, ChatStatus, COZE_CN_BASE_URL, RoleType } from '@coze/api';
import dotenv from 'dotenv';
import path from 'path';
import { fileURLToPath } from 'url';

// 获取当前文件的目录
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// 加载环境变量
dotenv.config({ path: path.join(__dirname, '..', '.env') });

const token = process.env.COZE_API_TOKEN;
const botId = process.env.COZE_BOT_ID;

if (!token || !botId) {
  console.error('错误: 请确保 .env 文件中设置了 COZE_API_TOKEN 和 COZE_BOT_ID');
  process.exit(1);
}

// 创建 Coze API 客户端
const client = new CozeAPI({
  token,
  baseURL: COZE_CN_BASE_URL,
});

// 测试特定问题
const testSpecificQuestion = async () => {
  try {
    const questions = [
      "你好",
      "你是谁",
      "StoryPlush是什么",
      "如何创建一个故事",
      "给我讲个故事"
    ];
    
    for (const question of questions) {
      console.log(`\n\n=== 测试问题: "${question}" ===`);
      
      const response = await client.chat.createAndPoll({
        bot_id: botId,
        user_id: 'test_user_fixed',
        additional_messages: [
          {
            role: RoleType.System,
            content: "你是 StoryPlush 平台的 AI 助手。请直接回答用户问题，提供有用的信息。避免说'不理解你的意思'之类的话。",
            content_type: 'text'
          },
          {
            role: RoleType.User,
            content: question,
            content_type: 'text'
          }
        ],
      });
      
      if (response.chat.status === ChatStatus.COMPLETED) {
        // 找到AI的回复消息
        const aiMessages = response.messages.filter(
          msg => msg.role === 'assistant' && msg.type === 'answer'
        );
        
        if (aiMessages.length) {
          console.log('\n回复:');
          console.log(aiMessages[0].content);
        } else {
          console.log('\n没有找到 AI 回复');
        }
      } else {
        console.log(`\n对话未完成，状态: ${response.chat.status}`);
      }
    }
  } catch (error) {
    console.error('\n错误:', error.message);
    if (error.response) {
      console.error('错误响应:', {
        status: error.response.status,
        data: error.response.data
      });
    }
  }
};

testSpecificQuestion(); 